# Промисификация клика по кнопке

Как вы уже узнали, очень часто при работе с асинхронными операциями, гораздо удобнее использовать промисы, а не коллбеки.
Действия пользователя на странице также асинхронны.

Представим, что у нас на странице есть кнопка:
```html
<button>Нажми меня</button>
```
Мы хотим работать с функцией `addEventListener` и событием `"click"` как с промисом. Т.е. когда пользователь ПЕРВЫЙ раз 
кликнет по кнопке, мы получим объект события `"click"` в коллбеке, переданном в метод промиса `then`.

Другими словами, в задаче нужно написать функцию, которая:
- будет называться `promiseClick`
- примет в качестве аргумента элемент кнопки, на который навесит обработчик события `"click"` 
- вернёт промис, который успешно завершиться, при клике на кнопку
- при этом, в коллбек, указанный в `then` в качестве аргумента прилетит событие, которое произошло при клике по кнопке

Пример использования:
```js
const button = document.querySelector('button'); // эта строчка указанна для примера, и в коде вашего решения быть не должна.

function promiseClick(button) { 
 // ...ваш код
}

promiseClick(button)
  .then((event) => console.log(event)); // Объект события "click"
``` 

Обратите внимание:
- Т.к. промисы нельзя переиспользовать, мы обрабатываем только ПЕРВЫЙ КЛИК по кнопке. И то, что после первого клика события перестают отлавливаться - это нормально.
- В связи с этим, рекомендуется использовать аргумент `"options"` метода `addEventListener`, а именно флаг `"once"`, вот так:
```js
button.addEventListener('click', (event) => { /* ... ваш код */ }, { once: true });
```
Как видно из примера, мы передаём третий аргумент ```{ once: true }```. Подробнее об этом можно почитать [вот тут](https://learn.javascript.ru/introduction-browser-events#addeventlistener).



